<?xml version="1.0" encoding="utf-8"?>
<!--
                                                                                     
 h       t     t                ::       /     /                     t             / 
 h       t     t                ::      //    //                     t            // 
 h     ttttt ttttt ppppp sssss         //    //  y   y       sssss ttttt         //  
 hhhh    t     t   p   p s            //    //   y   y       s       t          //   
 h  hh   t     t   ppppp sssss       //    //    yyyyy       sssss   t         //    
 h   h   t     t   p         s  ::   /     /         y  ..       s   t    ..   /     
 h   h   t     t   p     sssss  ::   /     /     yyyyy  ..   sssss   t    ..   /     
                                                                                     
	<https://y.st./>
	Copyright © 2016 Alex Yst <mailto:copyright@y.st>

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program. If not, see <https://www.gnu.org./licenses/>.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="https://y.st./en/weblog/2016/01-January/18.xhtml"/>
		<title>Removing wrapper classes &lt;https://y.st./en/weblog/2016/01-January/18.xhtml&gt;</title>
		<link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png"/>
		<link rel="stylesheet" type="text/css" href="/link/main.css"/>
		<script type="text/javascript" src="/script/javascript.js"/>
		<meta name="viewport" content="width=device-width"/>
	</head>
	<body>
<nav>
	<p>
		<a href="/en/coursework/">Coursework</a> |
		<a href="/en/take-down/">Take-down requests</a> |
		<a href="/en/">Home</a> |
		<a href="/en/a/about.xhtml">About</a> |
		<a href="/en/a/contact.xhtml">Contact</a> |
		<a href="/a/canary.txt">Canary</a> |
		<a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
		<a href="/en/opinion/">Opinions</a> |
		<a href="/en/law/">Law</a> |
		<a href="/en/recipe/">Recipes</a> |
		<a href="/en/a/links.xhtml">Links</a> |
		<a href="/en/weblog/2016/01-January/18.xhtml.asc">{this page}.asc</a>
	</p>
	<hr/>
	<p>
		Weblog index:
		<a href="/en/weblog/memories">Memories</a> |
		<a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
		<a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
		<a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
	</p>
	<hr/>
	<p>
		Jump to entry:
		<a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
		<a rel="prev" href="/en/weblog/2016/01-January/17.xhtml">&lt;Previous</a>
		<a rel="next" href="/en/weblog/2016/01-January/19.xhtml">Next&gt;</a>
		<a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
			</p>
			<hr/>
</nav>
		<header>
			<h1>Removing wrapper classes</h1>
			<p>Day 00317: <time>Monday, 2016 January 18</time></p>
		</header>
<p>
	I have decided to not only halt progress on my wrapper classes, but to backtrack.
	Simply put, I do not know which functions are worth wrapping in many cases, as I do not know which functions are even worth using.
	I do not need include.d to be cluttered with junk code.
	With that in mind, I am removing any wrapper class that I have never actually used, ass well as my dir wrapper class, which I feel is made obsolete by the built-in <code>\scandir()</code> function.
</p>
<p>
	I did not have much time this morning before leaving for Springfield, but I did start putting together a function to help me debug include.d.
	All the function really did was load all of include.d&apos;s functions, classes, and constants, which meant that any syntax errors would become immediately visible.
	However, on the way to Springfield, I decided to put together a battery of tests for the actual output of these functions and classes.
	Soon after, I decided that my initial function was kind of arbitrary as a function, and really belonged as part of the test code, so I downgraded my plans for the function itself.
	It would instead be just a set of loops in the test code and it would rely on a constant within include.d to know where include.d was so it could be recursed.
	By adding <code>const _DIR_ = __DIR__;</code> to include.d&apos;s constants file, I would have a way to tell the test suite where include.d&apos;s files were.
	By the end of the day though, I had realized that the test suite did not need include.d to be modified in any way.
	<code>stream_resolve_include_path(&apos;st/y&apos;)</code> would tell my test suite exactly where to find my functions and classes so that they all can be loaded.
	I feel that this is the cleanest way to make it work, as it does not rely on adding stupid hacks to include.d.
	I will of course still add individual test cases for each function and class, but this will mean that I will not have to remember to individually <code>require()</code> each of my functions.
</p>
<p>
	We did not get as much work done in Springfield as we wanted to, nor are we ready to rent that storage unit.
	Still, the planning that i was able to make for my test suite while working made the day worthwhile for me.
</p>
<p>
	My <a href="/a/canary.txt">canary</a> still sings the tune of freedom and transparency.
</p>
		<hr/>
		<p>
			Copyright © 2016 Alex Yst;
			You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
			If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
			My address is in the source comments near the top of this document.
			This license also applies to embedded content such as images.
			For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
		</p>
		<p>
			<abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
			This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F01-January%2F18.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.2</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F01-January%2F18.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
		</p>
	</body>
</html>

